package com.cn.wanxi.servlet.manage.nav;

import com.cn.wanxi.model.NavModel;
import com.cn.wanxi.service.INavService;
import com.cn.wanxi.service.impl.NavServiceImpl;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebFilter;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

/**
 * 所有的a标签都是默认get方法
 * 查询一般用get方法
 * 新增，删除，修改用post方法
 * 1安全性 post要高
 * 2.传递的值大小 get一般只有4kb post理论上 不限制
 * Servlet 里面get和post方法的区别？
 * <p>
 * 写后台代码的几个步骤或者顺序
 * 1.Servlet 页面控制层 controller
 * 1)拿到页面数据
 * 2）封装页面数据
 * 3）调用服务层
 * 4）返回页面（或者返回数据）
 * 2.service服务逻辑层
 * 1,接口层写查询list
 * 2，实现层去实现查询list
 * 3.dao数据实现层
 * 1，数据接口层
 * 2.数据实现层
 * 1）封装sql
 * 2）执行sql
 * 3）将查询的数据封装数据到List<NavModel>
 * 4.JDBC层
 */
@WebServlet("/navSelect")
public class NavSelectServlet extends HttpServlet {
    public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{
        doGet( req, resp);
    }
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        req.setCharacterEncoding("UTF-8");//请求编码格式为utf-8
//        resp.setCharacterEncoding("UTF-8");//响应编码格式为utf-8
//        resp.setContentType("text/json;charset=utf-8");//解决传值乱码
        //  1)拿到页面数据
        //这里我们需要全部查询出来，不需要接收页面数据，也不需要封装model
        //  2）封装页面数据
        //  3）调用服务层
        INavService iNavService = new NavServiceImpl();
        List<NavModel> list = iNavService.getNavModelList();
        //  4）返回页面（或者返回数据）
//        req.setAttribute("list", list);
//        NavModel navModel = list.get(0);
//        req.getRequestDispatcher("/back/navSelect.jsp").forward(req, resp);
        //需要将list转换成json对象，这里我们需要引用jar包
        JSONArray jsonArray = JSONArray.fromObject(list);//栈溢出
        resp.getWriter().println(jsonArray.toString());
    }
}
